package com.ny.mapper;

import com.ny.device.Devices;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.Query;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

@Repository
public interface DeviceMapper extends MongoRepository<Devices, Integer> {

    /**
     * 查询所有设备信息
     *
     * @return 设备列表
     */
    List<Devices> findAll();

    /**
     * 根据设备名称查询设备（精确匹配）
     *
     * @param name 设备名称
     * @return 设备列表
     */
    List<Devices> findByName(String name);

    /**
     * 根据设备id查询设备
     *
     * @param deviceId 设备id
     * @return 设备对象
     */
    @Query("{'device_id': ?0}")
    Optional<Devices> findByDeviceId(int deviceId);

    /**
     * 根据设备id删除设备
     * @param deviceId 设备id
     */
    @Query(value = "{ 'device_id' : ?0 }", delete = true)
    void deleteByDeviceId(int deviceId);

    /**
     * 根据设备名称模糊查询（包含关键字）
     * @param name 名称关键字
     * @return 设备列表
     */
    @Query(value = "{ 'name' : ?0 }", delete = true)
    List<Devices> findByNameContaining(String name);
}

